/**
 * Historico de alteração
 *
 * Data         Autor   Descrição
 * 24/10/2010   Jerry   Criação do cabeçalho.
 *
 */
package Instrumentos;

import Dados.FilaDouble;
import javax.swing.JProgressBar;
import javax.swing.JSlider;
import javax.swing.JTextField;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.data.Range;

/**
 *
 * @author Bruno
 */
public class GerenciaGraficoVelocidade extends Thread {
    
    private FilaDouble fila;
    private GraficoVelocidade grafico;
    private double valor;
    private JSlider slider;
    private JProgressBar bar;
    private JTextField texto;
    
    public GerenciaGraficoVelocidade(GraficoVelocidade grafico, FilaDouble fila, JSlider slider, JProgressBar bar, JTextField texto) {

        this.grafico = grafico;
        this.fila = fila;
        this.bar = bar;
        this.texto = texto;
        this.slider = slider;
        iniciaGraficoVelocidade();

    }
    
    @Override
    public void run() {
        
        NumberAxis domain = grafico.getDomain();
        Range range;
        int aux = 0;
        int cont = 0;
        int maximo = 35;
        
        while(true) {
            
                valor = fila.remove();
                range = domain.getRange();
                if(cont >= 30) {
                   
                    domain.setRange(slider.getValue(), slider.getValue() + 35);
                    slider.setMaximum(maximo);
                    slider.setValue(slider.getValue() + 1);
                    maximo++;
                    cont--;
                    if(aux == 10000) {
                        cont = 0;
                        maximo = 35;
                        aux = 0;
                        slider.setMaximum(maximo);
                        slider.setValue(0);
                    }
                }


                aux++;
                cont++;
                grafico.add(valor);
                bar.setValue((int)valor);
                texto.setText(String.valueOf(valor).replace('.', ','));
                
        }
        
    }

    public void iniciaGraficoVelocidade() {
            this.start();
    }

    public void paraGraficoVelocidade() {
        this.stop();
    }


    
}


